A portion of the disclosure Of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office, patent file or records, but otherwise reserves all copyrights whatsoever.
1. Field of the Invention
The invention relates to the specification of protocols and interfaces in distributed and modular computing or data processing systems such as telecommunications exchanges and, more particularly, to the specification of application level protocols, i.e., level number 7 in the Open Systems Interconnection (OSI) protocol stack.
2. Description of Related Art
One aspect of computer systems, particularly of networked or distributed systems, is that many communications protocols must be used in order to effect communications between and among the various components comprising the system. Monitoring the communications between components of a computing system necessitates the creation of well defined communication protocols. Interprocess communications within a computing system typically communicate in terms of requests and responses. Such systems have limited communications facilities and are able only to process all requests in the order in which they are received. The typical process-to-process protocols provide only this rather simple data transmission capability.
Protocols are implemented in computing systems in order to effect the orderly exchange of information between computing components. For computing components to communicate, conventions are required. Protocols may be used to build a standard communications path between two computing devices. Agreed-upon protocol conventions typically determine the nature of the data representation, the format and speed of that data representation over a communications path, and the sequence of any control messages that are to be sent. While a protocol is the logical or conceptual set of rules for communications between similar processes, interfaces comprise the set of rules between dissimilar processes and are often physical rather than logical connections. The procedure of a protocol constitutes a predetermined dialogue that must be scrupulously maintained by both ends of a communications link. At the link level, a protocol consists of an interchange of octets or octet sequences guaranteeing the control and integrity of a message transfer.
In the case of process-to-process communications within a data processing system, protocols typically provide only a very simplistic data transfer capability. Data is received only in the order in which it is sent and the information that passes between processes consists solely of the request, the response and possibly some data. All data or requests must be processed by the receiving process serially; multiple transmissions cannot be handled simultaneously. This type of communications system renders difficult the task of creating a server or some other device to allow for the simultaneous handling of multiple requests. An example of this type of system is disclosed in U.S. Pat. No. 4,396,983 to Segarra et al. that describes a system of inter-process communications within a distributed processor system.
Some servers capable of handling multiple requests have been developed, but they have typically been developed utilizing an approach that restricts the usefulness of a message based protocol. Such servers operate by sending only data addresses between processes and not the data itself. IBM Technical Disclosure Bulletin Vol. 23 No. 5, Oct. 1980, "Distributed Data Processing System," describes a modified version of such a system. Similarly, IBM Technical Disclosure Bulletin Vol. 22 No. 7, Dec. 1979, "Message-Based Protocol for Interprocessor Communication," discloses a message-based protocol for communicating between processes executing on different processors that are loosely coupled via a common bus.
U.S. Pat. No. 4,649,473 to Hammer et al. discloses a system that utilizes an inter-process information transfer facility to provide for the transfer of information between processes that may not share common storage and that may be located in more than one processor. This system uses "notes," which are packets of information. Each packet embodies a work request such that the server process can control receipt and processing of the requests and their corresponding data at its own convenience.
The advent of low cost data processing devices has brought about the development of local area communication networks that can handle a large number of devices used within a single business environment. The capabilities of prior systems were limited to the use of a single communications protocol for each different processing system. This meant that the addition of new devices once the system became operational was difficult if not impossible because the new device would be required to operate with a communications protocol identical to that of the other devices already within the system.
More advanced local area network systems have now been developed, however, that allow a plurality of remote processing devices to be connected to a host processor over a communications channel. Typically associated with each data terminal device is a communications controller having a rotary switch that can be selectively set to output the address of the controller. Each controller then sends its address to the host. The host processor will retrieve from a look-up table, stored in the processor, the program instructions comprising the communications protocol to be used by the controller in controlling the data transfer between the host and the specified remote devices. Such a system is disclosed in U.S. Pat. No. 4,787,028 to Finfrock et al.
Another drawback to currently available systems stems from the fact that technological advances have produced a variety of computer and data processing systems that operate at varying data rates and with varying formats. The computing industry has not developed or followed a set of standardized protocols. It is, therefore, often impossible for various computer systems to communicate and exchange information with each other. Presently, if individuals using diverse hardware want to communicate with a central computer or with other separate computers, data that is transmitted at a rate and in a format different from the receiving system, it will be unintelligible to the second or receiving computer. More frequently than not, the second computer will not utilize both the same rate and the same format as the first or sending system.
Systems have been developed to resolve this problem, at least partially. For example, devices have been developed in which either a software program or the computer hardware is utilized to analyze incoming data to determine the exact data rate and the precise data format being transmitted. Such systems are typically quite costly and complex, however, because they require that an algorithm be developed in which a multitude of data rates and formats are specified. The algorithm must, after determining the rate and format of the transmitted data, effect the necessary changes in the receiving computer to allow it to readily interpret the data it receives.
A "Communications Network for Communicating with Computers Provided with Disparate Protocols," as disclosed in U.S. Pat. No. 4,688,170, overcomes some of the deficiencies specified above. It describes a global communications network between various sizes and types of computers utilizing different data rates and different data formats. The disclosed system achieves this by placing a program containing a listing of the data rates and formats used in all of the computers in the global network with which any one of the computers from within the network might communicate into the memory of one of the computers in the network. The system is initiated by the individual user who must select a specific channel number associated with the computer with which the user desires to communicate. The user's computer will then log-on to the destination computer and become aware of the destination computer's data rate and format. If, however, the sending computer is the one that contains the program listing, then the sending computer would, after consulting the listing, transmit information at the rate and format applicable to the receiving computer.
Others solutions to communications problems have addressed a different aspect of the evolution in computer architectures toward distributed systems, i.e., the tendency toward the use of separate subsystems for users, resource management and communications management within a general communications network. The system disclosed in U.S. Pat. No. 4,396,983 to Segarra et al. makes it possible for any such local system to communicate with any other local system within the network without the use of a primary or central system. The disclosed system achieves this through a variety of communications constraints, as well as by managing the communications protocols through the use of specialized communications modules located within the functional communications layer of the distributed system. This system is limited, however, to certain specific types of distributed systems.
Other approaches to solve the problems in communications between and within computing and data processing systems include the CCITT recommendation for use of X. 219, Remote Operations and the ISO 9072-1, Information Processing Systems-Text Communications-Remote Operations Model of Open Systems Interconnection for CCITT Applications which were developed in close collaboration and are technically aligned. The CCITT X. 219 recommendation defines the remote operation services and notation of the Open Systems Interconnection for CCITT applications, in order to support interactive applications in a distributed open systems environment. According to the X. 219 recommendation, however, only the operations are formally specified. There is no formal specification of the actual protocols or of any interaction constraints. CCITT standards are the recommendations of the International Telegraph and Telephone Consultative Committee. Numerous CCITT communications standards have been published and have gained acceptance in the computing industry. For example, "CCITT V. 24" has been widely accepted for use in the lower layers of network architectures. Such standards are useful and necessary to define the conventional connections between data equipment and modems. Such physical standards provide an efficient, compatible interface between two differing hardware devices.
The system of the present invention is applicable to the application level, i.e., level no. 7 of the OSI protocol stack, and thus the majority of the prior art techniques discussed above which relate to lower layers on the protocol stack are not directly relevant. On the other hand, the CCITT X. 219 Remote Operations and Advanced Networked Systems Architecture (ANSA) standards relate to application level protocols and thus to the present invention. The Advanced Networked Systems Architecture, ANSA (The ISA Project), provides for interfaces wherein groups of operations are specified. Peer protocols, in which two communicating parties are considered equals and either party may initiate communications. The communications, however, must be built from two different client-server specifications having no formal connection between them. Further, the interface specifications are at least partially integrated with the implementation which causes the system to be less flexible, less modular and less system-independent. The ANSA system does provide for interaction constraints to be specified, but only for certain limited purposes not related to the specification itself. The ANSA Computational Model comprises the structuring concepts provided by ANSA for application programmers to use in designing distributed programs. It includes such major concepts as services, operations, objects, interfaces, invocations, interface types, activities and type conformance data.
Another related architecture and specification is the Common Object Request Broker developed by a group of companies, including Sun Microsystems, Inc., Hewlett-Packard, Inc., and Digital Equipment Corporation, among others. This specification provides the means by which objects in a system may transparently generate and transmit requests and receive responses. The Object Request Broker is a classic, concrete object model that further provides for interoperability between applications on different machines in heterogeneous distributed environments, providing for the seamless interconnection between multiple object systems. This specification does not provide, however, for implementation of specific peer-to-peer protocols with the parties treated as equals.
Therefore, it would be highly useful within the telecommunications industry to be able to specify certain communications protocols and other interfaces in a single, separate specification that exists apart from the implementation of either communicating party or component. That is, it would be beneficial to have a method by which multiple two-party pairs within a computing system may describe two-way communications in the same common description or specification. It is further desirable that all such protocols be able to be described in this manner, whether they are client-server protocols or peer protocols. The system of the present invention provides such a system, in part by utilizing specialized language known as ELIN. The ELIN language, its concepts and its constructs are described in detail in the "ELIN Language Reference," a copy of which is attached hereto as Attachment A and is hereby incorporated herein by reference.